Concerns primarily related to processor heat generation and total system power consumption are pushing computing towards a time when a very large (or massive) number of processors will be available, at increasingly lower (commodity) pricing, for solving demanding engineering and scientific computational problems. Much of this new processing power will become available on desktop computer systems and smaller, but also through the expansion of high-speed networks accessing distributed multiprocessor resources. The processors are also evolving toward a manycore design with architectures emphasizing different memory access and parallelization strategies and employing hundreds to thousands of core on a single processor. The new processors will be more energy efficient but performance will be limited by data transfer rates between processor and memory. Therefore, future Computer Aided Analysis (CAA) applications are to be designed for massive parallelism and to minimize key bottlenecks that limit performance.
In view of the above, new CAA applications must be designed to flexibly accommodate the on-going evolution of architectures towards a manycore processor environment. This includes new initiatives that complement or replace today's multiprocessing environments that emphasize multi-core central processing units (CPUs) and manycore graphics processing units (GPUs). The CAA system must then recognize the type of architectures available in the manycore (or equivalently multiprocessor) environment and deploy the CAA computational tasks appropriately for optimal performance. Furthermore, such CAA applications must also allow for a distributed multiprocessing environment where each distributed resource may have a unique manycore layout. Computing performance will depend greatly on maximizing data transfer rates to the manycore processors, and for peak performance CAA applications must, through their design, retain data organization in a manner to promote high data throughput.